aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/[lang=lang]
diff options
context:
space:
mode:
authorivarlovlie <git@ivarlovlie.no>2023-02-11 23:37:12 +0100
committerivarlovlie <git@ivarlovlie.no>2023-02-11 23:37:12 +0100
commit9b2c63d92ff77ebce0f90a7be05437504422bf45 (patch)
tree682447cde9d3eed555973ff1aff369b4443da07f /src/routes/[lang=lang]
parent23ab0a24ba82004fa449491b4e08698a1de9e6a0 (diff)
downloadauroraklinikken.no-9b2c63d92ff77ebce0f90a7be05437504422bf45.tar.xz
auroraklinikken.no-9b2c63d92ff77ebce0f90a7be05437504422bf45.zip
feat: Render localized content from sanity
Diffstat (limited to 'src/routes/[lang=lang]')
-rw-r--r--src/routes/[lang=lang]/+page.server.ts19
-rw-r--r--src/routes/[lang=lang]/+page.svelte17
-rw-r--r--src/routes/[lang=lang]/+page.ts18
3 files changed, 54 insertions, 0 deletions
diff --git a/src/routes/[lang=lang]/+page.server.ts b/src/routes/[lang=lang]/+page.server.ts
new file mode 100644
index 0000000..d3a98a5
--- /dev/null
+++ b/src/routes/[lang=lang]/+page.server.ts
@@ -0,0 +1,19 @@
+import { sanity } from '$lib/sanity-client';
+import type { PageServerLoad } from './$types';
+import groq from "groq";
+import type { ContactModel } from '$components/contact.svelte';
+import { fromLocalizedString } from '$lib/utils';
+
+export const load = (async ({ locals }) => {
+ const contactSection = await sanity.fetch(groq`*[_type == "contact"][0]`);
+ console.log(contactSection);
+
+ return {
+ contact: {
+ phone: fromLocalizedString(contactSection.phone, locals.locale),
+ email: fromLocalizedString(contactSection.email, locals.locale),
+ phoneHours: fromLocalizedString(contactSection.phoneHours, locals.locale),
+ addressLines: contactSection.addressLines.map((el: string | object) => fromLocalizedString(el, locals.locale)),
+ } as ContactModel
+ };
+}) satisfies PageServerLoad; \ No newline at end of file
diff --git a/src/routes/[lang=lang]/+page.svelte b/src/routes/[lang=lang]/+page.svelte
new file mode 100644
index 0000000..666aa80
--- /dev/null
+++ b/src/routes/[lang=lang]/+page.svelte
@@ -0,0 +1,17 @@
+<script lang="ts">
+ import Contact, { type ContactModel } from "$components/contact.svelte";
+ import type { PageData } from "./$types";
+
+ export let data: PageData;
+
+ type Model = {
+ contact: ContactModel;
+ };
+
+ const M: Model = {
+ contact: data.contact,
+ };
+ console.log(data);
+</script>
+
+<Contact model={M.contact} />
diff --git a/src/routes/[lang=lang]/+page.ts b/src/routes/[lang=lang]/+page.ts
new file mode 100644
index 0000000..fa3907b
--- /dev/null
+++ b/src/routes/[lang=lang]/+page.ts
@@ -0,0 +1,18 @@
+import type { PageLoad } from './$types';
+import LL, { setLocale } from '$i18n/i18n-svelte'
+import { get } from 'svelte/store'
+
+export const load = (async ({ parent, data }) => {
+ // wait for `+layout.ts` to load dictionary and pass locale information
+ const { locale } = await parent()
+
+ // if you need to output a localized string in a `load` function,
+ // you always need to call `setLocale` right before you access the `LL` store
+ setLocale(locale)
+ // get the translation functions value from the store
+ const $LL = get(LL)
+ return {
+ title: $LL.homeTitle(),
+ contact: data.contact
+ }
+}) satisfies PageLoad; \ No newline at end of file